dbtのカンファレンスイベント『Coalesce 2023』基調講演オンライン視聴レポート #dbtCoalesce #Coalesce23
米国時間2023年10月16日〜19日、dbtのカンファレンスイベント『Coalesce 2023』が開催されました。
このイベントは米国(サンディエゴ)の他にも英国(ロンドン)、豪州(シドニー)、そしてオンラインでも展開されていました。オンラインでは無料(!)で数多くのセッションがオンデマンド配信の形で視聴出来るようになっていたので参加登録を行い、各種セッションを視聴していました。
当エントリではオンライン視聴可能なセッションから、米国(サンディエゴ)で発表された「基調講演(dbt Labs product spotlight & keynote)」の内容について、合わせて公開されていた公式ブログの内容も交えてレポートします。
目次
- セッション概要
- セッションレポート
- イントロトーク
- dbt Mesh
- dbtが直面・解決する『複雑さ』 - 開発者(Developer)目線
- [Developer] dbt Core 1.6のリリースによる新機能・不具合修正・各種改善
- [Developer] CI/CD - 継続的インテグレーション(CI)と継続的デプロイメント(CD)
- [Developer] IDEの改善
- [Developer] dbt Cloud CLI
- dbtが直面・解決する『複雑さ』 - チーム(Team)目線
- [Team] dbt Explorer
- [Team] dbt Semantic Layer
- dbtが直面・解決する『複雑さ』 - 組織(Organization)目線
- [Organization] dbt Meshソリューション
- まとめ
セッション概要
イベントサイトに掲載のセッション概要は以下の通り。
・dbt Labs product spotlight & keynote
[登壇者]
・Tristan Handy(CEO @ dbt Labs)
・Mr.Luis Maldonado(Vice President, Product @ dbt Labs)
・Mrs.Kayleigh Lavorini(VP - Director of Product Ownership | Data Strategy @ Fifth Third Bank)
[セッション概要]
Kick off Coalesce at the Keynote and Product Spotlight!
(基調講演と製品スポットライトで Coalesce を開始しましょう!)
Seven years ago, in the early days of dbt, dbt Labs was building capabilities that made data developers more productive. dbt gained traction. It took off. Today, dbt is the standard for data transformation. It has never been easier to build and ship data products. This has created a new challenge – complexity.
(7 年前、dbt の初期の頃、dbt Labs はデータ開発者の生産性を高める機能を構築していました。 DBTは牽引力を獲得しました。 それは離陸しました。 現在、dbt はデータ変換の標準です。 データ製品の構築と出荷がかつてないほど簡単になりました。 これにより、複雑さという新たな課題が生まれました。
Join Tristan Handy, Founder and CEO at dbt Labs, and Luis Maldonado, Vice President of Product at dbt Labs, to hear all about the latest releases in dbt and how they are helping organizations navigate complexity. Finally, you'll hear from data leaders at Fifth Third Bank on how they are implementing these new capabilities in dbt to execute on their data strategy and achieve better outcomes for the business.
dbt Labs の創設者兼 CEO である Tristan Handy と、dbt Labs の製品担当副社長である Luis Maldonado に参加して、dbt の最新リリースと、それらが組織が複雑さを乗り越えるのにどのように役立っているかについて聞きましょう。 最後に、フィフス サード バンクのデータ リーダーから、データ戦略を実行し、ビジネスにより良い成果を達成するために dbt にこれらの新機能をどのように実装しているかについて話を聞きます。)
セッションレポート
ここからは基調講演の聴講レポートをお届けします。
※基調講演終盤、「A Conversation with Fifth Third Bank」の部分は割愛します。
※こちらの内容については公式でYouTube動画が挙がっています。合わせて御覧頂けますと幸いです。
イントロトーク
基調講演冒頭は、dbt LabsのCEO、Tristan Handy氏のトークから始まりました。
- coalesce2023へようこそ!このような雰囲気の中、皆さんとご一緒できるのは素晴らしいことです。
- まずは4つの質問に答えることからはじめます
- なぜ我々はここにいるのか?私たちはどこにいたのか、そして今どこにいるのか、そしてどこへ行くのか?
- 私たちがここにいるのは、データには力があると信じているからです。私たちは組織の全員を大切に思っている。DBTを使えるようになることは、一部のエリートに力を与えることではありません。私たちは、すべてのデータ実務者が、知識を創造し共有するための成熟した生産システムを構築する能力を十分に持っていると信じている。
- DBTはソフトウェアエンジニアリングのベストプラクティスをデータに導入し続けています。DBTは、すべてのデータ実務者を熟練したプロフェッショナルのように扱い、ソフトウェアエンジニアリングの成熟したプラクティスを適応させ、クラス最高のデータワークフローを作り上げる。
- dbtに関する数字の紹介
- dbtをプロダクションまたはコミュニティで使用している組織は30000以上。コミュニティミートアップの規模も27の国、50のグループ、18257人のユーザーと全世界に展開している。
- dbtの実行時間を合計すると、2023年09月時点で合計11億回のモデル呼び出しがあった
- dbtの組織がどのように大きくなってきたかについてのお話
- 我々がどこに行くのかについて説明する必要がある。その際に私は以下の3点について注目している。
- 持続可能性と管理責任
- 我々の目標はdbt labsを長期的に持続可能なビジネスにすること。成長し続けなければならないし利益を上げなければならない。それが、私たちが超長期にわたってdbtコミュニティを世話し続けることができる唯一の方法。
- オープンソース
- dbtは現代のデータスタックにおけるデータ変換の標準となっている。標準的であるということは、適切なスキルを持った人材を雇いやすくなるということ。
- dbtではコミュニティが保守しているライブラリが大量にある。どのような問題に遭遇しても、DBT標準がオープンソースソフトウェアによって可能になる前に解決することができる。
- dbtは、Apache License 2.0ライセンスにコミットし続けるし、dbt Coreについても引き続きApache License 2.0に基づいてライセンスしていく。
- 我々はコミュニティ全員の利益のために改善を維持するために投資し続ける。(ここで観客から拍手)
- クラウドのイノベーション
- dbtが位置する業界は30年にわたって商用オープンソースが存在する場所として見られてきた。
- そこにはオープンソースが非常にうまく解決する問題がいくつかあるし、また解決出来ない問題もある。
- 我々はdbt開発者に対してよりシームレスなエクスペリエンスを提供できることに興奮している。
- そういった価値を届けていくには、オープンソース ソフトウェア以上のものが必要。クラウド イノベーション、クラウド インフラストラクチャ、そしてクラス最高のユーザビリティ。
- dbtの将来に向けて必要な問題や課題はdbt Cloudで解決することをイメージしている。
- 持続可能性と管理責任
- 我々が話を聞いてきた殆ど全てのデータリーダーは、チームが独自のデータプロダクトを所有出来るようにしたいと考えていた。システム全体が見える必要があり、そして統治可能であることを望んでいた。
- 我々は直近過去1年、このことに取り組んできた。そしてこれを我々はdbt Meshと呼ぶことにした。
dbt Mesh
これらの様々な問題や課題を解決するために、dbtはdbt Cloudにおいて「dbt Mesh」というコンセプト・構想を発表しました。
- 単一の機能ではなく、複数の dbt プロジェクトを含むアーキテクチャーである。
- 各プロジェクトはビジネス ドメインに沿ったもので、互いに連動し構築される。
- データ環境の複雑さをコントロールし、より良いコラボレーションをスケールアップするための方法である。
- 期待できる効果や展開:
- プロジェクト間でモデルを参照するための使いやすい方法と提供することで、マルチプロジェクトのdbtアーキテクチャを実装することができるようになる。
- ボトルネックになりやすい単一のモノリシックなプロジェクトに依存するのではなく、 ドメインチームは独自の dbt プロジェクトを所有することができる。
- プロジェクト同士は互いにシームレスに構築され、プロジェクト間のインターフェイスはdbtに直接組み込まれたコントラクト、バージョン、アクセスコントロールによって管理されるようになる。
- 中央のデータチームは、ガバナンスのためのグローバルスタンダードを設定し、エンドツーエンドのDBTリネージを可視化することができる。
2023年10月の発表時点では、この機能はパブリックプレビューのステータスとなっています。機能詳細に関するドキュメントも既に公開されています。詳細は下記を御参照ください。
dbtが直面・解決する『複雑さ』 - 開発者(Developer)目線
ここからは発表をdbt Labsの製品担当副社長、Luis Maldonado氏にバトンタッチ。
dbtが直面している様々な切り口の課題のなかで、まずは開発者(Developer)目線のものについて言及していきました。
- 開発者は本当に優れた効率的なコードを書くことに集中し、データ製品を構築することに集中している。ワークフローに集中している。
- 開発者にとって多少の複雑さは必要ですが、それは問題ではない。実際私たちを駆り立てて、創造的にする部分もある。
- ただ、ワークフローが複雑になるのは良くないし、誰もそれを望んでいない。
- 以下はソフトウェア開発サイクルを表したもの。開発サイクルをできるだけ早く完了できることを促し、これらの各フェーズを通過できるようにフローを合理化する必要がある。アジャイルを実行している場合、または反復処理を実行している場合は、これらを常に複数回実行することになるため、非常に効率的に実行出来るような環境が求められる。
- dbtではこういったワークフローの複雑さを理解しているし、皆さんがやるべきことがたくさんあることも理解している。
- dbtではこれらの繰り返しを迅速に処理するのに役立つツールを提供しようと努めてきた。
[Developer] dbt Core 1.6のリリースによる新機能・不具合修正・各種改善
dbt Coreはdbt Labs社が2016年から展開してきたプロダクト。dbtが行う実行処理をコマンドラインツールで提供している。デスクトップ上の端末で動かすことも可能です。dbtはdbt Coreへの投資を継続することに尽力し、開発ワークフローに役立つ新しい機能を厳選して提供し続けていきます。
2023年7月にリリースされたバージョン「dbt Core 1.6」では、49個の新しい機能、114個の不具合修正、35個の改善がなされました。
- 49の新機能
- マテリアライズド ビューのサポート
- 失敗した時点から再試行
- モデルのクローン作成
- 114件の不具合修正
- エラーおよび警告メッセージの改善
- 述語プッシュダウンの改善
- 部分解析の改善
- 35の改善点
- メモリ使用量の削減
- コードのクリーンアップ
- 構成制御
開発者のライフサイクルでは小さなサイクルを反復して実行させるために継続的な統合が必要であるし、監視などの継続的な自動化も必要。dbtではこれらの問題に対処するために2019に年dbt Cloudをリリース、以降サービスの改善に取り組んできました。以降、dbtがそういった領域のサポート、進化を促す"追加のアクセラレータ"をどのように提供しているかについて言及。
[Developer] CI/CD - 継続的インテグレーション(CI)と継続的デプロイメント(CD)
dbt クラウドに組み込まれた継続的インテグレーション(CI)と継続的デプロイメント(CD)機能は大幅な機能追加、機能改善が行われています。
- CI専用ジョブの導入ジョブの種類として "継続的インテグレーション "を選択出来るようになり、ベストプラクティスの設定があらかじめ適用されたCIジョブを簡単に開始できるようになった
- dbt Cloudに於いてPR と本番環境で実行されているコードの差分を取ることができるため、貴重な計算リソースを節約できるようになった
- dbt Cloudに於いてPR への最新のコードコミットに対するテストの実行を優先するために現在古くなっている CI ジョブを検出してキャンセルすることができるようになった
- 障害発生時点からの再実行新しいリトライコマンドが組み込まれ、障害発生ノードから最後のdbtジョブを再実行できるようになった
- dbt クラウドは CI ジョブの実行後に一時的なスキーマを削除し、CI ジョブのステータスをより迅速に更新するようになった
これらの変更は現時点で(基調講演開催時時点で)全てのdbt Cloudユーザーが一般利用可能です。
[Developer] IDEの改善
IDE(Integrated Development Environment/統合開発環)周りの改善についても幾つか発表・言及がありました。
- ブラウザのダークモード対応
- 実運用環境への延期(defer):開発を開始する前にすべてのアップストリームモデルを構築する必要がない代わりに、ディファレンシャルを使用すると、開発環境をすでに本番稼動しているモデルに向けることができるようになった
- SQLFluff, sqlfmt, Black, and Prettierといったの一般的なリンター(ソースコードを解析し文法上の誤りやバグの原因となりそうな部分を検出・警告)やフォーマッタ(スペースの数や改行の位置等、ソースコードの見た目・コードのスタイルをチェックし、自動的に修正・整形)と連携するようになり、プロジェクト全体でのコードの品質と一貫性の向上に役立つ
[Developer] dbt Cloud CLI
この日新しく発表された「dbt Cloud CLI」は従来の(dbt Coreが提供する)CLIと同じインターフェイスですが、両方の世界の柔軟性、つまり両方の長所を備えています。 実行しているツールや環境、コード エディターの実行に必要な柔軟性が得られ、さらにクラウドによってサポートされるようになったので、クラウド機能のすべてのパワーを利用できるようになりました。メリットや特徴等は以下の通り。
- ユーザーが好きなIDEやターミナル(VS Code、Sublime Text、Vim など)を使用して柔軟に開発できるようになる
- カスタマイズ可能な独自の開発ツールに慣れ親しみながら、dbt クラウドのすべてのパワーをバックエンドとして享受することができるようになる
- クラウド認証が付属しているため、セキュリティ コンプライアンス チームのヒーローになることもできる
- ロールアウトを容易にするためにバージョンが管理されており、セルフサービスで簡単にインストールできる
- Cloud CLI を使用することで、dbt のバージョニングを一元管理できるようになり、デプロイの管理が容易になる(バージョンアップを調整する手間を大幅に削減できる)
dbt Cloud CLIは基調講演時点ではパブリックプレビューとなっています。
また、この機能について早速「試してみた」ブログが挙がっていますので合わせて御参照ください。
dbtが直面・解決する『複雑さ』 - チーム(Team)目線
次いで、dbtが直面している様々な切り口の課題におけるチーム(Team)目線の状況について言及。
- 開発者はメンバー同士で一緒に仕事をし、協力していく。その中で新たな課題に直面することに。
- ワークフローを一緒に開発すること、これはあなたの仕事が他の人に依存していることを意味する。 そして他の人の仕事はあなたに依存している。
- コラボレーションは素晴らしいものですが、多くの場合、それは妥協を意味する。 これはつまり大規模なグループにサービスを提供する同じプラットフォーム、同じツールが必要になるということ。
- コラボレーションを検討する場合は、さまざまなタイプのアクセラレータが必要。通常、現在では、共有構造/ドキュメント/メトリクス等誰もが共有して一緒に理解できるものが必要。
- より多くのコンテキスト、つまり開発リソースに関する情報が必要。言うまでもなく、プラットフォームはすべての人をサポートする必要があります。 従ってあらゆる種類のプラットフォームをサポートするこのエコシステムが必要だと考える。
- 現在、dbtではDAGに関する情報を提供している。この機能はチームの課題を解消するための素晴らしい機能であると考えている。
- 最近の調べで、クラウド顧客の 82% がドキュメントを生成しており、アクティブ ユーザーの 40% 以上がドキュメントを生成していることが判明した。この情報からツールが機能していることは明らかである。これは開発者や共同開発者と情報を共有するだけでなく、データの利用者とも連携できる優れた方法。 データの利用者はそこに何があるかを確認できる。
- プロジェクトがより複雑になり、より多くの情報が必要になり始めると、開発者が進化し始める必要があることが分かる。 そして実際に私たちが目にしているのは『プロジェクトの単なるドキュメント以上のものを見たい』ということ。
- ユーザーが欲しているのは、そのプロジェクトがあなたが知っているプロジェクトであるか、そのプロジェクトがテストに合格しているか、またはベストプラクティスを満たしているかどうかにかかわらず、データ品質に関する情報である。また運用の健全性、実行時間や失敗率、プロジェクト内で何が起こっているか等も同様。
- そういった情報を提供するために、dbtは多くのことを検討し、これらすべてのことを考慮に入れた。 そして『新しい体験を提供すること』を本気で考えた。
[Team] dbt Explorer
そんなチーム目線での問題や課題を解決する機能としてアナウンスされたのが『dbt Explorer』。
dbt Explorer は、dbt Cloud の新しいナレッジベースであり、リネージの可視化機能です。dbt デプロイメントを素早く理解し、開発や分析に使用できるリソースを特定するのに役立ちます。
dbt Explorer は、Discovery API を本番メタデータのソースとして使用し、dbt Cloud の各実行後に充実したドキュメントを提供します。dbt Explorer を起動パッドとして使用することで、コンテキストを共有し、問題をトラブルシューティングし、組織の異なる部署間でアセットを再利用することがこれまで以上に容易になります。
dbt Explorer はマルチプロジェクトのリネージにもネイティブに対応し、dbt メッシュアーキテクチャーを採用する組織にとって不可欠なツールとなります。dbt Explorerエクスプローラーは、大規模な分散コラボレーションに不可欠な中央可視性を提供するHub(ハブ)とも言えます。
dbt Explorerは以下の3つの機能から構成されています。
- 検索(Search):キーワードまたはセレクターを使用してリソースを検索
- リソースの詳細(Resource Details):リソース固有の詳細ページには、静的および動的情報が表示される
- 系統グラフ(Lineage Graph):インタラクティブなグラフ視覚化
基調講演ではdbt Explorerに関する簡単なデモも公開されていました。
dbt Explorerの機能はdbt CloudのTeamプラン、Enterpriseプランにて基調講演発表時点でパブリックプレビューで利用可能となっています。本番環境トップナビゲーションバーの「Explore」タブをクリックすることで利用手続きを進められるようです。
[Team] dbt Semantic Layer
今年初めにdbt LabsがTransformを買収して以来、MetricFlowの組み込みを急速に進めていた『dbt Semantic Layer』、基調講演でのこのタイミングで一般提供(Generally Available)開始となりました。
ビジネスが複雑化するにつれ、様々なチームやアナリティクスツール間で「顧客」や「収益」といったビジネスコンセプトの一貫した定義を維持することがますます難しくなっていますが、dbt Semantic Layerはチームがメトリクスを一元的に定義し、統合されたアナリティクスツールからそのメトリクスにアクセスできるようにすることでこの問題に対処します。
dbt Semantic Layerでは対応可能な統合に新しくTableauとGoogle Sheetsが追加されました。これらはHex、Klipfolio、Lightdash、Mode、Push.aiとの統合に付随するものです。詳細については下記ドキュメントを御参照ください。
dbt Semantic Layerの新バージョンではより複雑なメトリックの定義とクエリを、以下のような機能により、スケールアップして効率的に行うことができるようになります。
主なポイントは以下の通り。
- 動的結合(Dynamic Join)のサポート:dbt はメトリックを生成する際に、エンティティを使用して複数のテーブル間の適切なトラバーサルパスを推論できるようになり、メトリックに有効なすべてのディメンジョンをその場で利用できるようになった
- 拡張されたデータプラットフォームのサポート:BigQuery、Databricks、Redshift、Snowflakeをサポート。各データプラットフォーム向けのパフォーマンス最適化も含まれる。
- クエリプランとSQL生成の最適化:読みやすくパフォーマンスの高いSQLを生成することに重点を置き、新しいセマンティックレイヤーは、対称集約のような読みにくいSQLを生成する複雑なトリックを必要とせず、アナリストが行うのと同じように結合、フィルター、集約を生成。
- Semantic Layer APIの提供:ArrowFlight (ADBC/JDBC) で構築された完全に再構築された SQL インターフェイスや、よりシームレスな統合を可能にする GraphQL API など、新しい API も構築。
- すぐに使用できる、より複雑なメトリック タイプ:新しい集計とより柔軟なメトリクス定義が可能になるということは、ビジネスの測定に重要なメトリクスをより多く定義できることを意味する。
dbt Semantic Layerは現在、すべてのデプロイメントリージョンでマルチテナントのユーザーで利用可能、dbt Cloud TeamおよびEnterpriseプランのユーザーはトライアルベースで本日から利用可能となっています。
dbtが直面・解決する『複雑さ』 - 組織(Organization)目線
『開発者』『チーム』と続いてきた『複雑さ』の言及は最後3つめの組織(Organization)へと移ります。
- 複雑さの最終レベルから最高レベルは『組織レベル』のもの。
- チームの成功の確かな兆候は「他のチームがあなたの作品を利用したい」ということ。彼らはあなたのリソースとパイプラインを使い始めたいと考えてるし、彼らはあなたが作成した構造を基にして構築したいと考えている。彼らはあなたのプロセスも活用し、採用したいと考えている。
- 本当は中央集権的なチームになるつもりはなかったのに、いつのまにか今の自分がビジネスに貢献している。
- ここでの課題は、これほど大きく幅広い責任を負っていることをどうやって管理するかということ。 おそらくあなたは何らかの構造を整えていることだろう。おそらくあなたにはいくつかの役割と分業があり、いくつかの調整があり、いくつかは共有されているかもしれない。
- そのような流れで構築されたインフラストラクチャは、全ての関係者が使用することを目的としている。全員が連携して作業していることを確認できる単一の場所を設けるのは素晴らしいことである。
- 問題は、あなたが作成したこの一枚岩のようなものが成長する可能性があるということ。成長するにつれてボトルネックになるという状況は良くあることだし、新しいデータソースや集計を追加するたびに各要素の構築に掛かる時間も長くなる。監視も困難になっていき、関わる人々のイライラも募るようになる。
- このような問題が人々を「ハブ アンド スポーク アーキテクチャ」または「データ メッシュ アーキテクチャ」の採用に駆り立てている。ただ問題はこれらの環境は何かを購入すれば使える、適用出来るというものでは無く、自ら構築していく必要がある。
- 構築するには、それを実際にサポートするツールが必要。 これらはネイティブである必要があり、これらのアーキテクチャ パターンをサポートできる必要がある。
[Organization] dbt Meshソリューション
前述の組織における課題を解決するソリューションとして、「dbt Mesh」が発表されました。冒頭に続き2回目の登場(言及)です。
これはdbt Cloudでプロジェクト間でモデルを参照する使いやすい方法で、これにより、dbt Meshと呼んでいるパターンであるマルチプロジェクトのdbtアーキテクチャを実装することができるようになります。dbtメッシュは単一の機能ではなく、複数のdbtプロジェクトを含むアーキテクチャーであり、各プロジェクトはビジネスドメインに沿ったもので、互いに連動し構築されます。データ環境の複雑さをコントロールし、より良いコラボレーションをスケールアップするための手段として利用出来るものです。
ボトルネックになりやすい単一のモノリシックなプロジェクトに依存するのではなく、 ドメインチームは独自の dbt プロジェクトを所有することができます。これらのプロジェクトは互いにシームレスに構築され、プロジェクト間のインターフェイスはdbtに直接組み込まれたコントラクト、バージョン、アクセスコントロールによって管理されます。
これにより、ドメインチームは(妥当なガードレールの範囲内で)自分たちのデータパイプラインをコントロールできるようになり、自分たちの仕事に直接関係するdbtリネージの部分のみを注視・推論することに集中出来ます。他のチームが共有するdbtモデルを簡単に参照することができ、自分たちや下流のコンシューマーが予期せぬ事態に見舞われることはないという確信が得られます。一方で中央のデータチームは、ガバナンスのためのグローバルスタンダードを設定し、エンドツーエンドのDBTリネージを可視化することが出来ます。
プロジェクト間での参照機能は、パブリック・プレビューで利用可能です。詳細は下記ドキュメントを御参照ください。
基調講演ではこの部分、dbt Meshにおけるデモ実演も為されていました。
dbt Cloudの大規模にコラボレーション関連機能のリリース状況は以下の通り。
- 一般利用可能
- パブリックプレビュー
- 複数プロジェクト間参照:複数のdbtプロジェクト間での共同作業を実現
- dbt Explorer:dbtプロジェクトを直感的にナビゲートして探索
- dbt Cloud CLI: 最も快適な方法で貢献
現在dbtではメッシュ環境向けに、他の環境にも適用できるdbtに合わせたオーケストレーション機能の開発に取り組んでいます。ジョブの完了時にトリガーする機能等を含め、幾つかのメリットを実感出来るような機能がお目見えする予定とのこと。これは間もなくプレビューで公開される予定とのことです。
※(2023/10/27追記) さがら によるdbt Meshの検証ブログが挙がりましたので共有です。
まとめ
という訳で、dbtのカンファレンスイベント『Coalesce 2023』基調講演のオンライン視聴レポートでした。
今回発表された機能のどれもが非常に興味深いものであり、今後のdbtの発展・進化が楽しみな内容でした。オンラインでは基調講演の他にも数多くのブレイクアウトセッションが視聴可能となっていますので、引き続き興味関心のある内容を見ていきたいと思います。
参考: